<?php

/*
 * LINHA        CAMPO                            COLUNA         TAMANHO         DETALHES
 * 
 * 01           Número da conta                  27             5
 * 01           CNPJ da empresa                  32             14
 * 01           Número do banco                  77             3
 * 01           Nome do banco                    80             10
 * 01           Identificação do arquivo         111            7
 * 
 * 02           Tipo de dado                     1              1               1 = detalhes de pagamento
 * 02           Identificação do registro        51             5
 * 02           Tipo de ocorrência               109            2               06 = dados para ler
 * 02           Valor do documento               153            13
 * 02           Data do pagamento                329            8
 * 02           Valor pago (crédito)             254            13
 * 02           Multa paga                       267            13
 * 02           Desconto concedido               241            13
 * 
 */


class retorno{
    private $id;
    private $arquivo;
    private $boleto;
    private $id_registro;
    private $valor_documento;
    private $valor_pago;
    private $dt_pagamento;
    private $multa;
    private $desconto;
    
    public function __construct() {
        $this->id = NULL;
        $this->arquivo = NULL;
        $this->boleto = NULL;
        $this->id_registro = NULL;
        $this->valor_documento = NULL;
        $this->valor_pago = NULL;
        $this->dt_pagamento = NULL;
        $this->multa = 0;
        $this->desconto = 0;
    }
    
    //  GETTERS
    public function get_id(){
        return $this->id;
    }
    
    public function get_arquivo(){
        return $this->arquivo;
    }
    
    public function get_boleto(){
        return $this->boleto;
    }
    
    public function get_id_registro(){
        return $this->id_registro;
    }
    
    public function get_valor_documento(){
        return $this->valor_documento;
    }
    
    public function get_valor_pago(){
        return $this->valor_pago;
    }
    
    public function get_dt_pagamento(){
        return $this->dt_pagamento;
    }
    
    public function get_multa(){
        return $this->multa;
    }
    
    public function get_desconto(){
        return $this->desconto;
    }
    
    
    //  SETTERS
    public function set_id($id){
        if(valida::numero($id) && isset($id)){
            $this->id = $id;
            return 1;
        }else{
            return 0;
        }
    }
    
    public function set_arquivo($arquivo){
        if(valida::numero($arquivo) && isset($arquivo)){
            $this->arquivo = $arquivo;
            return 1;
        }else{
            return 0;
        }
    }
    
    public function set_boleto($boleto){
        if(valida::numero($boleto)){
            $this->boleto = $boleto;
            return 1;
        }else{
            return 0;
        }
    }
    
    public function set_id_registro($id_registro){
        if(valida::numero($id_registro) && isset($id_registro)){
            $this->id_registro = $id_registro;
            return 1;
        }else{
            return 0;
        }
    }
    
    public function set_valor_documento($valor){
        if(valida::numero($valor)){
            $this->valor_documento = $this->add_ponto($valor);
            return 1;
        }else{
            return 0;
        }
    }
    
    public function set_valor_pago($valor){
        if(valida::numero($valor) && isset($valor)){
            $this->valor_pago = $this->add_ponto($valor);
            return 1;
        }else{
            return 0;
        }
    }
    
    public function set_dt_pagamento($data){
        if(valida::numero($data) && strlen($data > 8)){
            $tmp = substr($data, 0, 4).'-'.substr($data, 4, 2).'-'.substr($data, 6, 2);
            $this->dt_pagamento = $tmp;
            return 1;
        }else{
            return 0;
        }
    }
    
    public function set_multa($multa){
        if(valida::numero($multa)){
            $this->multa = $this->add_ponto($multa);
            return 1;
        }else{
            return 0;
        }
    }
    
    public function set_desconto($desconto){
        if(valida::numero($desconto)){
            $this->desconto = $this->add_ponto($desconto);
            return 1;
        }else{
            return 0;
        }
    }
    
    
    //  FUNÇÕES
    private function add_ponto($num){
        $tam = strlen($num);
        if($tam > 2){
            $tmp = substr($num, 0, $tam -2).'.'.substr($num, $tam -2, $tam);
        }else{
            if($tam > 0){
            $tmp = "0.".substr($num, $tam -2, $tam);
            }else{
                $tmp = "0.00";
            }
        }
        return $tmp;
    }
    
    public function salvar(){
        $db = new db(config::$driver);
        $conexao = $db->conecta();
        
        $sql_trans = "SELECT id FROM transacao WHERE id_boleto = '".$this->boleto."' AND nosso_numero = '".$this->id_registro."' AND id_empresa = '".$_SESSION["ce_id_empresa"]."'";
        $res_trans = $db->query($sql_trans, $conexao);
        $id_trans = $db->fetch_array($res_trans);
        $transacao = $id_trans[0];
        
        $sql = "UPDATE transacao SET valor_pago = '".$this->valor_pago."', dt_pagamento = '".$this->dt_pagamento."' WHERE id = '$transacao' AND id_empresa = '".$_SESSION["ce_id_empresa"]."'";
        $result = $db->query($sql, $conexao);
        $db->close($conexao);
        
        return $result;
    }
    
}
?>
